/**
 * 项目名称:
 *
 * @Author: 夏国倩
 * @Date: 2023/10/14 9:07
 * @Copyright
 */
package Reflect;
/*
通过Class得newInstance()方法来实例化对象
注意：newInstance()内部实际调用了无参构造方法，必须保证无参构造方法是存在的
 */
public class ReflectTest2 {
    public static void main(String[] args) {
        try {
            //通过反射机制，获取Class,痛过Class来实例化对象
           Class c = Class.forName("demo.Reflect.User"); //c代表User类型

           //newInstance()这个方法会调用User这个类的无参数构造方法，完成对象的创建
            //重点：newInstance()调用的无参构造方法，必须保证无参构造方法是存在的
           Object obj = c.newInstance();
            System.out.println(obj);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            throw new RuntimeException(e);
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        }
    }
}
